# Getting Started

## Programming Background

You should be familiar with front end development for the web.  This means you know and have written HTML, CSS, and, more importantly, you should be fairly strong with writting JavaScript.

Should you need to brush up or strengthen your JavaScript skills here are some books/resources you should check out:

### Books

1. Learning JavaScript by: Shelley Powers, [Indigo](http://www.chapters.indigo.ca/books/learning-javascript-add-sparkle-and/9780596521875-item.html?ikwid=learning+javascript&ikwsec=Books&gcs_requestid=0CNCT-Yzo47cCFQgj5wodrUIAAA) | [Amazon](http://www.amazon.com/Learning-JavaScript-Edition-Shelley-Powers/dp/0596521871/ref=sr_1_2?ie=UTF8&qid=1371222044&sr=8-2&keywords=learning+javascript) 

2. JavaScript: The Definitive Guide by: David Flanagan, [Indigo](http://www.chapters.indigo.ca/books/product/9780596805524-item.html?ref=google:sayt) | [Amazon](http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527/ref=sr_1_1?ie=UTF8&qid=1371221610&sr=8-1&keywords=javascript+the+definitive+guide)

3. \* JavaScript: The Good Parts by: Douglas Crockford, [Indigo](http://www.chapters.indigo.ca/books/javascript-the-good-parts-the/9780596517748-item.html?ikwid=javascript+the+good+parts&ikwsec=Books&gcs_requestid=0CIj3zofn47cCFdRA5wod5VwAAA) | [Amazon](http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1?ie=UTF8&qid=1371221709&sr=8-1&keywords=javascript+the+good+parts)

4. \* JavaScript: Design Patterns by: Addy Osmani, [Indigo](http://www.chapters.indigo.ca/books/learning-javascript-design-patterns/9781449331818-item.html?ikwid=javascript+design+patterns&ikwsec=Books&gcs_requestid=0CICujq7n47cCFVLj5wodkhEAAA) | [Amazon](http://www.amazon.com/Learning-JavaScript-Design-Patterns-Osmani/dp/1449331815/ref=sr_1_1?ie=UTF8&qid=1371221872&sr=8-1&keywords=javascript+design+patterns) | [Free Online Version](http://addyosmani.com/resources/essentialjsdesignpatterns/book/)

### On going resources:
1. \* [JavaScript Weekly](http://javascriptweekly.com/)

\* Highly recommended


### Key Concepts

For JavaScript Concepts, you should get familiar with:

1. Self *Invoking* Anonymous Functions (SIAF) aka Self *Executing* Anonymous Functions (SEAF)

SIAFs look like this:
````javascript
(function(arguments){
	// your wonderful code here
})(pass_in_the_argument);
````
Basically they will run and call themselves (self invoke/execute) as soon as possible - actually right away.  This is really useful when you don't want to pollute the global variable namespace - meaning making everything public and accessible everywhere.  This is both a pro and a con.  The con being that because by default everything inside an SIAF is not publically accessible, you can't really reuse code right away - not until you add things back to the global namespace.  We'll explain how in **CHAPTER**.

When building Windows 8 Apps you'll be writting many SIAFs - infact your Windows 8 App kicks off with an SIAF in ````default.js````.

## Windows 8 Apps Are Single Page Web Apps...

For navigation, performance and other reasons Windows 8 Store Apps using HTML/CSS/JavaScript utilizes a single page app style of app development.  While files are still written separtely - new sections/pages of the app are loaded inside the "main app" - i.e. ````default.html````.  Conceptually you can think of it as running sub pages/sections inside an IFrame...I assume you just belly groaned a little.  All good - it's not that bad.  We'll find out more about this the **Navigation** chapter.

## Development Environment

Love it or hate it, you're gonna need Visual Studio 2012 (VS).  No way around it.

Visual Studio 2012 is the Integratd Development Environment (IDE) that allows you to write and deploy software, and in our case specifically for Windows 8 Store Apps.

### Which Version of Visual Studio Should I Get?

There's quite a few versions of Visual Studio kicking around as of the writing of this book (June 2013).

The main differences are really geared towards how big of a company or team you're a part of.  As you move 'up' in the versions - the size of Visual Studio growsm as the tools that come with it and allow it to integrate with team features increases.

That being said - for this book and to just get started right away - Visual Studio Express 2012 for Windows 8 is your way to go. You can download the ISO install file [here](http://go.microsoft.com/?linkid=9810160).

You should note thought that Visual Studio 2012 Express is broken down into several different versions.  They're scaled down versions of Visual Studio and designed specifically for the platform you're building on - in our case for Windows 8 Store.

### How can I get Visual Studio 2012 Pro/Premium/Ultimate?

You can get 90 day trial versions of Visual Studio 2012 Pro/Premium/Ultimate.

If you're a student at a Post-Secondary School you likely have access to a [DreamSpark](https://www.dreamspark.com/) account via your school.  This gives you access to a bunch of free software and I highly suggest you take advantage of this.  You can typically register with an email address that has been issued to you by your school.

If you're an incorporated business that's been operating for 5 years or less and making less than $1 Million annually - then you can apply for Microsoft's [BizSpark](http://www.microsoft.com/bizspark/about/default.aspx).  This can give you access to Visual Studio Ultimate with an MSDN Subscription, as well as an allowence on other Microsoft Software Licenses and Services such as full licensed versions of Windows 8 and building services on Windows Azure.
